package com.xmfh.wemedia.controller;


import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.UUID;

/**
 * <p>
 * 微头条配图表 前端控制器
 * </p>
 *
 * @author admin
 * @since 2022-04-03
 */
@RestController
@RequestMapping("/wemedia/ddSubMicro")
public class DdSubMicroController {
    private static File imgFile;
    static {
        try {
            // 图片存放的文件夹路径
            imgFile = new File(DdMicroController.class.getClassLoader().getResource("./static/img").toURI());
            // 如果不存在这个文件夹就创建出来
            if (!imgFile.exists()) {
                imgFile.mkdirs();
            }
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
    }

    /**
     * 图片上传控制器
     * @param picFile
     * @return
     */
    @RequestMapping("/upload")
    public String upload(MultipartFile picFile) {
        // 获取图片完整的名字，例如: 锤子.webp
        String originalFilename = picFile.getOriginalFilename();
        // 获取文件后缀名
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        // 使用UUID来得到一个唯一的图片名字
        String onlyPictureName = UUID.randomUUID() + suffix;
        try {
            // 图片的虚拟路径
            File pictureFile = new File(imgFile, onlyPictureName);
            // 把图片存到文件夹里面
            picFile.transferTo(pictureFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 返回经过UUID改造过后的图片文件名
        return "/" + onlyPictureName;
    }

    /**
     * 删除图片控制器
     * @param imageUrl
     */
    @RequestMapping("/deleteImage/{imageUrl}")
    public void deleteImage(@PathVariable String imageUrl) {
        // System.out.println("dialogImageUrl = " + imageUrl);
        File file = new File(imgFile, imageUrl);
        file.delete();
    }
}
